/**
* @author suhuamo
* @solgan 想和喜欢的人睡在冬日的暖阳里
* @date 2022-04-02
* @version 2.0
* @description 今日校园早打卡
* @update 
    1.允许用户输入解锁密码
    2.修改识别关键字 "每日健康打卡" -> "健康打卡" (最终结果)
    3.增加每次操作的等待时间,使得操作更像人为操作
*/

// 检查是否开启无障碍服务
auto.waitFor();
// 进行初始化操作
init();
// 运行 APP
今日校园早打卡_APP();
// 结束提醒
remind("今日校园早打卡");

hamibot.exit();

// 脚本执行函数
function 今日校园早打卡_APP() {
    // 点击地理位置图标
    // openPosition()
    // 打开 APP
    launchApp("今日校园");
    // 操作间隔等待,预防界面未加载完全
    sleep(1000);
    // 点击 消息 面板
    id("tv_tab_title").text("消息").findOne().parent().parent().click();
  	// 操作间隔等待,预防界面未加载完全
    sleep(1000);
    // 点击 辅导员通知 按钮
    let counselorNote = id("rc_conversation_title").text("辅导员通知").findOne().bounds();
    click(counselorNote.centerX(), counselorNote.centerY());
    // 操作间隔等待,预防界面未加载完全
    sleep(1000);
    // 获取所有 每日健康打卡 的集合
    let dailyCard = id("tv_content").textContains("健康打卡").find();
    // 点击 最近一次的 每日健康打卡
    dailyCard[dailyCard.length - 1].parent().parent().click();
  	// 操作间隔等待,预防界面未加载完全
    sleep(1000);
    // 勾选 确认 按钮
    text("确认已认真查看，且填写信息无误").findOne().click();
    // 操作间隔等待,预防界面未加载完全
    sleep(1000);
    // 点击 提交
    text("提交").className("android.view.View").findOne().click();
    // 操作间隔等待,预防界面未加载完全
    sleep(1000);
    // 在确认提交中点击 提交
    text("提交").className("android.widget.Button").findOne().click();
    sleep(1000);
    // 点击地理位置图标
    // openPosition()
}


// 初始化参数设置
function init() {
    // 设置脚本屏幕的分辨率为 2340 × 1080
    setScreenMetrics(1080, 2340);
    // 解锁屏幕
    unlock();
    sleep(1000);
}

// 解锁屏幕
function unlock()
{
    // 如果是息屏状态下
    if(!device.isScreenOn())
    {
        // 唤醒屏幕
        device.wakeUp();
        // 操作间隔等待,预防界面未加载完全
        sleep(1000);
        // 上滑进入密码界面
        swipe(500,1600,500,1000,210);
        // 操作间隔等待,预防界面未加载完全
        sleep(1000);
      	// 创建坐标
        function point(x,y) {
      		this.x = x;
      		this.y = y;
  			}
        var xs = [250, 540, 830];
        var ys = [1200, 1500, 1800];
        var sit = new Array();
      	sit[0] = new point(0, 0);
        for(var i = 0; i < 9; i++)
        {
          sit[i + 1] = new point(xs[i % 3], ys[Math.floor(i / 3)]);
        }
        // 获取配置信息
        const msg = hamibot.env;
      	let password = msg.text_password;
      	let lock_type = msg.select_lock;
      	// 输入手势解锁
      	if(lock_type == "swipe") {
          gesture(1000, [555, 1194], [241, 1506], [825, 1195], [541, 1484]);
          // 输入密码解锁
        }	else {
          for(var i = 0; i < password.length ;i++) {
            let p = password.charAt(i);
            toastLog(p);
            click(sit[p].x, sit[p].y);
            sleep(300);
          }
      	}
    }
}

// 打开手机的地理位置
function openPosition() {
    // 下拉出菜单页面
    swipe(895, 40, 895, 1000, 500);
    // 操作间隔等待,预防界面未加载完全
    sleep(1000);
    // 点击地理位置图标
    click(185, 1343);
  	// 操作间隔等待,预防界面未加载完全
    sleep(1000);
    // 返回-退出菜单页面
    back();
}

function remind(app) {
    //震动两秒
    device.vibrate(2000);
    toastLog(app+"执行完毕");
}